Search results based on subscription information

ABSTRACT

Search results are improved, in one embodiment, through the use of subscription information about the status of a subscription to content. The subscription information can be transmitted to a cloud storage service used by a user account of a device; later, a search query from the device causes the receipt of search results from a search using the subscription information and these search results can show the status of the subscription such as whether the content is playable.

This application claims the benefit of the filing date of U.S.Provisional Application No. 62/171,963, filed on Jun. 5, 2015, which isincorporated herein by reference.

BACKGROUND OF THE INVENTION

The embodiments described herein relate to methods and systems forsearching for information, such as searches on the Internet for contentsuch as movies, etc.

Existing computer systems, tablet devices and smartphones can search forinformation by using a web browser and a search engine (e.g. Bing) toperform the searches. The searches can be directed to audiovisualcontent, such as movies or TV shows, for which a subscription isrequired to view the content. The subscription often requires a fee suchas a monthly payment to the content provider that distributes thecontent. While the search may retrieve information about the content,there is no information about any subscription, even if a subscriptionby the user exists.

SUMMARY OF THE DESCRIPTION

The embodiments described herein can provide improvements in the resultsof a search by using subscription information about subscriptions tocontent from, for example, content providers. For example, thesubscription information can, in one embodiment, be used to indicate, inthe search results, a status of the subscription such as whether thecontent can be played. In one embodiment, the subscription informationcan be used to rank or sort the search results based on the subscriptioninformation; for example, the subscription information can be used tocustomize the search results to show items associated with asubscription with a higher rank (so they are listed first in a list ofsearch results).

A method according to one embodiment can include one or more of thefollowing operations performed on one or more client devices: receivinginput, at a client device, to create subscription information about asubscription to content; transmitting the subscription information to acloud storage service used by a user account of the client device;receiving, at the client device (or at another client device associatedwith the user account), an input which specifies a search query;transmitting the search query to one or more servers at least one ofwhich searches information about content using the search query whichcan include the subscription information of the user account in oneembodiment; receiving, at the client device (or at the another clientdevice), search results in response to searching of the information, thesearch results indicating a status (e.g. valid and current; lapsed;expired, etc.) of the subscription to the content. In one embodiment,the status of the subscription can be indicated by an icon displayed inthe search results, and wherein the icon, when selected (e.g. tapped orclicked), causes the presentation of the content (which may involvelaunching a content provider's application associated with thesubscription). In one embodiment, the search results are ranked based onthe subscription information and the ranked search results can alsoinclude one or more subscription status indicators. In one embodiment,the search query is entered into either a dedicated text input field ina user interface chrome of a web browser or a text input field in asystem wide search application (which is configured to index full textcontent and metadata of at least some of the files stored on the clientdevice). In one embodiment, this system wide search application canindex content and metadata from different types of user files havingdifferent content and metadata (e.g. PDF files, Microsoft WORD and EXCELand PowerPoint files; iTunes files, photos, HTML files, Pages files,email files, etc.). These files can be created or modified by the userand then indexed by the search application. In one embodiment, thesearching can include searching for information from other informationdomains (in addition to searching the subscription information), andthese information domains can include at least one or more of: socialmedia postings (e.g. tweets on Twitter); current news; weather; maps;sports or sports news; or stocks.

In one embodiment, the content is provided by a content provider (e.g. acontent creator or distributor such as HBO or Showtime, etc.) andincludes at least one of: movies, TV shows, games, other audiovisualcontent, books, newspapers, or music, etc. In one embodiment, thecontent from the content provider is presented through an application(“app”) that is also from the content provider (e.g. the app is createdand controlled by the content provider and may be distributed by thecontent provider or by an app store). In one embodiment, thesubscription information is created within such an app by a user usingthe app to obtain a subscription and once the subscription is created(e.g. the user authorizes a payment to the content provider), then theapp calls, through an application program interface (API), subscriptionreporter software component (which is different and separate from thecontent provider's app) which in turn causes the subscriptioninformation to be uploaded to the user's account on the cloud storageservice. In one embodiment, the subscription information can also beuploaded when the user simply logs into an existing subscription, suchas when the user launches a content provider app and then logs into thatapp; the app can then call the subscription reporter to update thesubscription information on the cloud storage service. The subscriptionreporter software component can receive such calls from a plurality ofdifferent apps from a plurality of different content providers, and thusthis software component can provide a system level service for all suchdifferent apps. The subscription reporter component can also be calledby a content provider's app to modify an existing subscription (e.g.extend or renew or change the level of subscription, etc.) or cancel asubscription. In those embodiments in which a subscription is created ormodified by a user within a web browser, the web page can include ametatag (or in other embodiments, other data) that contains thesubscription information; this subscription information can be createdby the content provider's web page and stored in the DOM of the webpage, and the web browser can use Javascript to extract the subscriptioninformation and then cause the subscription information to be uploaded(either directly the web browser or by communicating the subscriptioninformation to the subscription reporter) to the user's account on thecloud storage service.

In one embodiment, the cloud storage service can be used as a repositoryof the user's data, and this repository can be synchronized with one ormore client devices used by the user, such as client devices that havebeen associated with the user's user account on the cloud storageservice. The synchronization, in effect, provides a backup service fromwhich the one or more client devices can be restored should any one ofthe client devices lose data (e.g. they are erased or become corrupted,etc.). The user can associate a device with the cloud storage serviceby, for example, entering a user account identifier (e.g.joe.montana@iCloud.com) and a password and then activating or enablingthe account with the cloud storage service. The subscription informationcreated or any one of the user's devices can be treated as user datathat is synchronized with the cloud storage service so that the userdata can be shared across the user's devices. In one embodiment, inaddition to the subscription information, the user data can also includeone or more of: calendar data, contact data, apps purchased orinstalled, media content (e.g. an iTunes media library), photos,documents, email, reminders, notes, web browser bookmarks, passwords, orother data.

A method according to one embodiment can include one or more of thefollowing operations performed on one or more servers (which are coupledthrough one or more networks to client devices); receiving a searchquery with subscription information automatically included as part ofthe search query; searching through content metadata using the searchquery and the subscription information to produce search results;transmitting, to a client device, the search results which include dataindicating a status of a subscription to content. The status can, in oneembodiment, indicate whether the content can be presented on the clientdevice. In one embodiment, the search results can include the result ofsearching other information domains such as, for example, one or moreof: social media postings (e.g. tweets on Twitter); current news;weather; maps; sports or sports news; or stocks. In one embodiment, thesearch results can be ranked based on the subscription information. Inone embodiment, the content can include at least one of the following:movies, TV shows, other audiovisual content, newspapers, books or music.In one embodiment, the subscription information is received from aclient device that is associated with the user account identifier andthe subscription information stored in the cloud storage service forthat user account identifier. In one embodiment, the cloud storageservice also receives and transmits user data to synchronize user dataon the client device with the user account specified by the user accountidentifier, and this user data can include, in addition to thesubscription information, one or more of: calendar data, contact data,apps purchased or installed, media content on the user's client devices(e.g. an iTunes media library), photos, documents, emails, reminders,notes, web browser bookmarks, passwords, or other data.

The embodiments described herein also include data processing systemssuch as a data processing system (on a client device) that includes asystem wide search module that is configured to index content andmetadata for files stored on the system and a subscription reportermodule that is configured to transmit subscription information, such assubscription information about a plurality of different subscriptionsfrom different content providers, to a cloud storage service used by auser account of the system, and a network communication module that isconfigured to receive search results from searching of information,wherein the search results indicate a status of the subscription. Thesearch results are in response to a search query entered into an inputfield of the system wide search module.

In alternate embodiments, the search query is transmitted without thesubscription information, and the subscription information for theuser's account is retrieved from the cloud storage service and used toprovide search results based on the retrieved subscription informationand the results from searching for content that matches the search queryand the retrieved subscription information.

The various embodiments described herein can be implemented in clientdevices and in server systems and in methods and in non-transitorymachine readable storage media that store executable programinstructions which when executed can cause a data processing system(such as a client device or a server system) to perform any one or moreof the methods described herein.

The above summary does not include an exhaustive list of all embodimentsin this disclosure. All systems and methods can be practiced from allsuitable combinations of the various aspects and embodiments summarizedabove, and also those disclosed in the Detailed Description below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIG. 1 shows an example of a system of one or more client devices thatare coupled through one or more networks (e.g. the Internet) to one ormore servers that provide for searching of information and also storageof information such as subscription information stored on a cloudstorage service.

FIG. 2 is a flowchart which shows an example of a method, which can beperformed at a client device, for obtaining and uploading subscriptioninformation to a cloud storage service.

FIG. 3 shows a flowchart that provides an example of a method, performedat one or more servers, for processing subscription informationaccording to one embodiment. FIG. 3 also shows that one or more serverscan perform searches, such as searches directed to content.

FIG. 4 is a flowchart that shows an example of a method, which can beperformed at a client device, for performing searches, such as searchesfor content for which a subscription may exist.

FIG. 5 shows an example of a client device which can include softwarecomponents or modules for operating the client device in accordance withone or more embodiments described herein.

FIG. 6 shows an example of the user interface of a web browser which canbe used with any one of the embodiments described herein.

FIG. 7 shows an example of a user interface of a system wide searchapplication (such as Spotlight) which can be used with any one of theembodiments described herein.

FIG. 8 shows an example of search results from one or more embodimentsdescribed herein where the search results include an indicator of thestatus of a subscription to content.

FIG. 9 shows an example of a data processing system which can be used inone or more embodiments described herein.

DETAILED DESCRIPTION

Various embodiments and aspects will be described with reference todetails discussed below, and the accompanying drawings will illustratethe various embodiments. The following description and drawings areillustrative and are not to be construed as limiting. Numerous specificdetails are described to provide a thorough understanding of variousembodiments. However, in certain instances, well-known or conventionaldetails are not described in order to provide a concise discussion ofembodiments.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin conjunction with the embodiment can be included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification do not necessarily all refer to the sameembodiment. The processes depicted in the figures that follow areperformed by processing logic that comprises hardware (e.g. circuitry,dedicated logic, etc.), software, or a combination of both. Although theprocesses are described below in terms of some sequential operations, itshould be appreciated that some of the operations described may beperformed in a different order. Moreover, some operations may beperformed in parallel rather than sequentially.

Subscription information about subscriptions to content can be used toimprove the results of searches, such as searches for content, and thissubscription information can be stored in a cloud storage service thatcan be synchronized across the client devices (e.g. laptop computer,tablet computer and smartphone) of a user. FIG. 1 shows an example of asystem of one or more client devices 109 and 111 coupled through one ormore networks 107 (e.g., the Internet) to one or more servers, includingone or more servers 105 for content providers (which may host bothcontent and browsable catalogs for that content), one or more servers103 for searching such as multidomain searching, and one or more servers101 for the cloud storage service implemented through servers 101. Theclient devices 109 and 111 can be any one of the data processing systemsthat a user may use to access content or information including computers(laptop, desktop, etc.), tablet computers, smartphones, game playerdevices (e.g. X-box), wearable device or other consumer electronicdevice. The client devices 109 and 111 can be used by the same user(e.g. device 109 is a laptop computer of the users and device 111 is asmartphone of the user and both devices have activated or enabled a useraccount for the user on the cloud storage service provided by servers101); alternatively, client devices 109 and 111 can be used by differentusers, each with their own user account on the cloud storage serviceprovided by one or more servers 101. The client devices 109 and 111 caneach include the components or software modules shown in FIG. 5 and caneach perform the methods shown in FIGS. 2 and 4 and present the userinterfaces shown in FIGS. 6-8. Further descriptions in conjunction withFIGS. 2, 4 and 5-8 will be provided below.

The cloud storage service can be implemented with one or more servers101 and can be configured to establish a cloud user accounts withmultiple users, each of which may have multiple devices. The iCloudservice from Apple Inc. of Cupertino, Calif. is an example of one suchcloud storage service which can establish and provide multiple cloudstorage accounts for multiple users, each of which can potentially havemultiple client devices synchronized with the cloud storage service. Thecloud storage service can establish a user account with one or more ofthe user's devices by receiving information from each such device suchas a device identifier (optional) and a user account identifier (e.g.joe.user@iCloud.com) and a password. After a client device hasestablished a cloud account with the cloud storage service (provided byone or more servers 101), user data from the client device can beuploaded to servers 101, and this user data can include subscriptioninformation about subscriptions to content and optional other user data.This subscription information can result from the creation ormodification of a subscription to content such as a subscription tocontent from a content provider such as HBO, Showtime, etc. Thesubscription information can include information identifying a contentprovider and a status of the subscription (e.g. registration orcancellation of a subscription; expiration data, level of subscriptionsuch as basic, enhance, premium, etc., and optional information). Thesubscription information may specify specific content provided by acontent provider (e.g. only “basic” movies for “basic” subscribers whopay less than premium subscribers or specific content such as sportsarticles only for a newspaper subscription, etc.) or may not limit thecontent available from a content provider such that all content fromthat content provider's subscription is available under thesubscription). The other user data that may also be uploaded to thecloud storage service can be uploaded at the same time as uploading thesubscription information or at a scheduled time that is different thanwhen the subscription information is uploaded. The other user data caninclude different types of user data including, for example, one or moreof: calendar data, contact data, apps installed, media content (e.g. aniTunes media library of the user), photos, documents, emails, reminders,notes, web browser bookmarks, passwords, or other data. The server(s)101 of the cloud storage service are configured to interact with thesubscription reporter modules of client devices 109 and 111 for thepurpose of receiving and storing subscription information. The user datais uploaded to the one or more servers 101 in one embodiment on arepeated basis in order to back up the client devices of a user and tosynchronize each such client device with the cloud storage services forany potential restore or device recovery operation should a devicebecome either intentionally or unintentionally erased or otherwise needto be restored. In one embodiment the one or more servers 101 areoperated by an entity that controls the cloud storage service while thecontent is provided by content providers who are different entities thatoperate the set of servers 105. These servers 105 may be a set ofwebsites that provide the content or may be a set of servers thatprovide content provider apps to client devices, such as client devices109 and 111, either directly or through an app store (such as an appstore provided by the entity which also operates the cloud storageservice implemented by one or more servers 101. The apps provided bythese content providers can be the same apps used on client devices tocreate or modify subscriptions (and thereby create subscriptioninformation which is uploaded to one or more servers 101) and to presentthe content provided through the subscription.

The one or more servers 103 can provide for searching of contentinformation such as information obtained from or stored on the one ormore servers 105 and optionally search other information domains. Theone or more servers 103 are configured to receive one or more searchqueries from one or more client devices (such as devices 109 and 111)and then perform searches through data for results that match the searchquery and then these results are ranked and returned to the clientdevice that sent the search query. For example if a client device withan associated user account for the cloud storage service, such as clientdevice 109, received the search query “Jurassic Park” from the user ofthat device, the device transmits the search query (with thesubscription information for that client device automatically includedas part of the search query) to one or more servers 103 which in turncause a search of matching content and subscription information for thatdevice (e.g. content metadata that includes the phrase “Jurassic Park”from a content provider having a matching subscription information whichindicates the device has a subscription with that content provider) andany matching results (“hits or matches”) are then found and returned tothe client device. In addition, the one or more servers 103 can searchother information domains using the same search query and returnmatching search results (such as news about an upcoming sequel to themovie “Jurassic Park”). The other information domain can include one ormore of: social media postings (e.g. tweets on Twitter); current news;current movies; weather; maps; sports or sports news; or stocks. Thesearch results from searching the content information (or the combinedsearch results from the content information and the other informationdomains) are ranked based on relevance and/or other factors and thensent back to the client device that transmitted the search query. In oneembodiment, the set of one or more servers 103 can be implemented in themanner described in U.S. patent application Ser. No. 14/503,226, filedSep. 30, 2014 and entitled “Multi-Domain Query Completion”, which U.S.patent application is hereby incorporated herein by reference.

FIG. 2 provides an example of a method according to one embodiment foroperating a client device such as one of the client devices 109 or 111.In operation 201, a user who is operating the client device can obtain asubscription to content (e.g. purchase a one-year subscription to HBO orpurchase a subscription to an electronic version of the New York Times,etc.) or modify an existing subscription (e.g. renew, extend or cancelan existing subscription or change the level of a subscription frombasic to premium, etc.). In one embodiment, a user may not even need tocreate or modify their subscription; the user may simply log into thecontent provider's app if they have an existing subscription already andthis results in the call (described below) being made to cause thesubscription information to be uploaded to the cloud storage service tothereby synchronize their subscription information to the cloud storageservice. Operation 201 can be performed in one embodiment in an app orapplication from the content provider that creates and/or distributesthe content (e.g. HBO or New York Times) or can be performed in anotherembodiment in a web browser which processes a web page or set of webpages from the content provider. In either case, operation 201 producesa set of subscription information that is stored locally on the clientdevice at least until the subscription information is uploaded (inoperation 205) to a cloud storage service such as the cloud storageservice shown in FIG. 1. In one embodiment, the subscription informationmay be retained in non-volatile storage on the client device after it isuploaded to the cloud storage device and is used each time a searchquery is transmitted to servers 103 (in that embodiment, thesubscription information is automatically without user input or requestadded to the search query so that searches are performed looking formatches to both terms in the search query and terms in the subscriptioninformation). In one embodiment, the subscription information caninclude a set of information such as: content distributoridentification; status of subscription (e.g. valid and playable);expiration date or time to live; and optional information. In operation203, the subscription creation process (in an app) can call, through anApplication Program Interface (API), a subscription reporter module(such as the module 507 shown in FIG. 5) which, in response to the call,uploads the subscription information (along with the user's cloud useraccount identifier), in operation 205, to the cloud storage service. Thecall can include the subscription information as parameters or datapassed in the call from the app to the subscription reporter module.This call or API can be referred to as a subscription awareness APIcall. In the embodiment in which a web browser is used to create ormodify a subscription, the web page can be configured by the contentprovider to include one or more metatags in the DOM of the web pagewhich can cause the web browser to extract the metatag (which containsthe subscription information), and then the web browser can either, inone embodiment, directly upload the subscription information to thecloud storage service or in another embodiment can call the subscriptionreporter module to do so.

FIG. 3 shows an example of a method according to one embodiment foroperating one or more servers 101 that implement a cloud storageservice. In operation 301, after the subscription information isreceived from one or more client devices (such as devices 109 and/or 111in FIG. 1), the subscription information (and the associated useraccount identifier received from the client device) is stored on the oneor more servers that implement a cloud storage services such as the oneor more servers 101. If the user uses another client device (alsoassociated with the same cloud user account identifier) to create ormodify subscriptions, the one or more servers in operation 303synchronize the subscription information (and optionally other user dataas described herein) on the servers of the cloud storage service withthat another client device; this enables the cloud storage service tohave a complete set of subscription information even if the same usercreated different subscriptions on different client devices (each ofwhich was enabled to use the user's cloud storage account), and thisalso enables the user to be able to input a search query on any one ofthe user's client device (which was enabled to use the user's cloudstorage account) and to receive the search results that indicate thestatus of all subscriptions (created on different client devices by thesame user). In operation 305, one or more servers 103 receive a searchquery (which includes the subscription information automaticallyobtained from the device sending the query) from one of the clientdevices (e.g. devices 109 or 111) and then perform a search for matchesto the search query found in the content information such as metadatafor content provided by servers 105. In addition, the one or moreservers 103 can also search for matches to the search query across oneor more other information domains such as: social media postings (e.g.Twitter content); current news; weather; maps; sports or sports news; orstocks. The matches or hits from these one or more searches are thencombined and ranked, in one embodiment, and then transmitted back to theclient device that transmitted the search query. In one embodiment, theranking can be based on the subscription information, and thesubscription information can be used to indicate, for a content item inthe search results, the status of a subscription to the content such aswhether the content is playable.

FIG. 8 shows an example of a result 567 within search results 565 wherethe search query was the phrase “Jurassic Park”. The search querytransmitted to servers 105 also included the subscription informationfrom the device that transmits the query, and this causes the servers tolook for matches to both terms in the search query and to thesubscription information. The search results will likely include manyother matches if other information domains were searched (such asTwitter tweets, etc.). In this example, the search through the contentinformation (server(s) 105) found both matching content and matchingsubscription information for the content (in this case a movie calledJurassic Park) and found that at least one subscription for that contentwas valid so that the content (the movie Jurassic Park) is currentlyplayable, and thus the status indicator (a PLAY button 569) in thisexample is shown next to the search result 567. If the user selects thePLAY button 569, then in one embodiment the content is presented, whichmay cause a player to launch (such as a player app provided by thecontent provider of the version of the movie Jurassic Park provided bythat content provider). If the subscription was not valid then adifferent status indicator (e.g. expired subscription) may be displayednext to the search result 567 or no status indicator may be displayed.

FIG. 4 shows an example of a method performed by a client device (suchas device 109 or 111) according to one embodiment. This method can beperformed after subscription information has been uploaded for a usercloud account of the client device. The client device in operation 401receives a search query from the user (e.g., the user types or speaks asearch query such as “Jurassic Park”), and then the search query (andthe user's local copy of the user's subscription information) istransmitted, in operation 403, to one or more servers (e.g., servers103) which search the content information using the search query and thesubscription information. The server(s) which perform the searching mayinclude any one of servers 105 or 103 or both, and other informationdomains may also be searched in certain embodiments (examples of theseother information have been described herein, including with respect tooperation 305 in FIG. 3). The results from the searching these server(s)are then combined (if multiple domains were searched) and ranked andtransmitted back to the client device that sent the search query, andthen the client device receives and displays the search results inoperation 405. In one embodiment, the search results can be ranked basedon the subscription information (e.g. matches for playable content foundin the subscription information are ranked higher in a search resultslist than other matches). In one embodiment, the search results caninclude one or more indicators (e.g., PLAY button 569 shown in FIG. 8)of the status of the subscription for the content; these indicators inone embodiment are presented only if the subscription's status isvalidated or verified by obtaining the subscription information on theuser's device.

FIG. 5 shows an example of various modules (e.g., software components)on a client device that may be used with the embodiments describedherein. The client device 501 shown in FIG. 5 can be either clientdevice 109 or 111 and can perform the methods shown in FIGS. 2 and 4.The client device 501 includes non-transitory computer readable mediasuch as one or more of DRAM and flash memory or a hard drive that canstore these components. The components include web browser 503, searchsystem 505, subscription reporter module 507, content provider apps 509,subscription information 511, network communication processing module513 and an operating system 515. The web browser 503 can be aconventional web browser which processes HTML and Javascript in webpages, such as a web page from a content provider.

The search system 505 can be search software which performs system widesearching of a plurality of different files of different file types andwhich also indexes content and metadata from those files stored locally(“local content”) on the client device. In one embodiment, the systemwide search software can be similar to the Spotlight software from AppleInc. of Cupertino, Calif. The search system software 505 can display auser interface for receiving search queries and for presenting searchresults. FIG. 7 shows an example of such a user interface. Inparticular, the search application window 551 includes a frame 553 and acontent or results portion 555. Within the frame 553 there is a textinput field 557 which can receive the search queries from a user andperform searches of both local content (which can be indexed in aninverted index) as well as the content information described herein andpotentially other searching of other information domains also describedherein. It will be appreciated that this searching, using a search queryentered into text input field 557, can provide matches from content ormetadata (or both content and metadata) from locally stored files andmatches from the content information stored in the service maintained byone or more servers 105 and/or 103; in addition, this searching can alsoprovide matches from the multidomain searching performed by one or moreservers 103. In one embodiment, this searching is directed at specificsources of information (e.g. the user's local files and subscription andoptionally other limited information domains) but is not a generalweb/internal search using a web search engine such as Google or Bing orYahoo, etc.

Referring back to FIG. 5, the subscription reporter module 507 canprovide the subscription information reporting to cause the uploading ofsubscription information to the cloud storage service as describedherein. The subscription information, such as subscription information511 can be at least temporarily stored on the client device before it isuploaded to the cloud storage service as described herein. The uploadingcan be performed with a network communication processing module 513which can use conventional protocols to transmit the subscriptioninformation during the upload process to the cloud storage service. Allof these various components run on an operating system, such as theoperating system 515 which executes on the client device 501. The webbrowser 503 in one embodiment can extract the subscription informationfrom a metatag within a web page and store that subscription informationat least temporarily as subscription information 511 prior to uploadingthe subscription information to the cloud storage service.

In one embodiment, the search queries described herein (such as thesearch queries referred to in operation 305 or the search query referredto in operation 401) can be received within a text input field in asystem wide search application (such as search system 505) which has aninterface such as that shown in FIG. 7. The entry of text into that textinput field such as input field 557 can cause the searching of contentinformation as well as searching for locally stored content and metadataand potentially other information domains as described herein.Similarly, a web browser user interface chrome (as shown in FIG. 6) caninclude a text input field, such as text input field 527 shown withinthe frame 525 of the web browser window 521. This text input field 527can receive the search queries described herein and cause the searchingof the content information as well as potentially other informationdomains as described herein and then return results within the contentregion 523 of the web browser window 521. The web browser window 521shown in FIG. 6 can include conventional user interface controls for awindow such as window controls 531 to expand, minimize, or remove thewindow. In addition, the web browser window 521 can include conventionalweb browser user interface controls such as back and forward buttons 533and 534. In one embodiment of a web browser, the searching performed inresponse to a search query entered into text input field 527 is limitedto the content information and the other information domains provided byone or more servers 103; in another embodiment of a web browser, thesearching performed in response to a search query entered into textinput field 527 includes a web based search (using a conventional websearch engine such as Google or Bing or Yahoo) as well as a searchthrough the subscription information and optionally the otherinformation domains provided by one or more servers 103.

FIG. 9 shows one example of a data processing system, which may be usedwith any one of the embodiments described herein. Note that while FIG. 9illustrates various components of a data processing system, it is notintended to represent any particular architecture or manner ofinterconnecting the components as such details are not germane to thisdescription. It will also be appreciated that network computers, tabletcomputers, smartphones, laptop computers, desktop computers, otherconsumer electronic devices and other data processing systems which havefewer components or perhaps more components than those shown in FIG. 9may also be used with one or more embodiments described herein. Theservers described herein can be implemented in a form similar to thatshown in FIG. 9, and the client devices described herein can beimplemented in a form similar to that shown in FIG. 9.

As shown in FIG. 9, the computer system 900, which is a form of a dataprocessing system, includes a bus 003 which is coupled to one or moremicroprocessor(s) 906 and a ROM (Read Only Memory) 907 and volatile RAM905 and a non-volatile memory 911. The microprocessor 906 is coupled tooptional cache 904. The microprocessor 906 may retrieve the storedinstructions from one or more of the memories 907, 905 and 911 andexecute the instructions (in one or more cores) to perform operationsdescribed above. These memories represent examples of machine readablenon-transitory storage media that can store or contain computer programinstructions which when executed cause a data processing system toperform the one or more methods described herein. The bus 903interconnects these various components together and also interconnectsthese components 906, 907, 905 and 911 to a display controller anddisplay device 913 and to peripheral devices such as input/output (I/O)devices 915 which may be one or more of mice, touch screens, touch pads,touch sensitive input devices, keyboards, modems, network interfaces,printers and other devices which are well known in the art. Typically,the input/output devices 915 are coupled to the system throughinput/output controllers 917. The volatile RAM (Random Access Memory)905 is typically implemented as dynamic RAM (DRAM) which requires powercontinually in order to refresh or maintain the data in the memory.

The mass storage 911 is typically a magnetic hard drive or a magneticoptical drive or an optical drive or a DVD RAM or a flash memory orother types of memory system which maintain data (e.g., large amounts ofdata) even after power is removed from the system. Typically the massstorage 911 will also be a random access memory although this is notrequired. While FIG. 9 shows that the mass storage 911 is a local devicecoupled directly to the rest of the components in the data processingsystem, it will be appreciated that one or more embodiments may utilizea non-volatile memory which is remote from the system, such as a networkstorage device which is coupled to the data processing system through anetwork interface such as a modem, an Ethernet interface or a wirelessnetwork. The bus 903 may include one or more buses connected to eachother through various bridges, controllers and/or adapters as is wellknown in the art.

In the foregoing specification, specific exemplary embodiments have beendescribed. It will be evident that various modifications may be made tothose embodiments without departing from the broader spirit and scopeset forth in the following claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

What is claimed is:
 1. A non-transitory machine readable medium storingexecutable program instructions which when executed by a data processingsystem cause the data processing system to perform a method comprising:transmitting a subscription information to a cloud storage service usedby a user account of a first device of a plurality of client devices,the subscription information about a subscription to content and thesubscription information is synchronized among the plurality of clientdevices, wherein the subscription information is created within aplurality of applications that each call, through an application programinterface (API), a subscription reporter to upload the subscriptioninformation of each of the plurality of the applications to the cloudstorage service's user account of the first device of the plurality ofclient devices, the plurality of different applications have differentsubscription information, and each of the plurality of applications areexecuting on the first device of the plurality of client devices;receiving, at a second device of the plurality of client devices, asearch query; transmitting the search query to one or more servers,wherein the subscription information is automatically included in thesearch query without a user request to include the subscriptioninformation; and receiving search results in response to searching ofinformation using the search query, the search results indicating astatus of the subscription to the content.
 2. The medium as in claim 1wherein the status is indicated by an icon displayed in the searchresults and wherein the icon, when selected, causes the presentation ofthe content on the client device.
 3. The medium as in claim 2 whereinthe search results are ranked based on the subscription information; andwherein the method further comprises: receiving input, at the clientdevice, to create the subscription information.
 4. The medium as inclaim 2 wherein the search query includes the subscription informationand is from either a dedicated search input field in a user interfacechrome of a web browser or in a system wide search application's inputfield, the system wide search application configured to index full textcontent and metadata of files stored on the client device.
 5. The mediumas in claim 4 wherein the content includes at least one of: movies, TVshows, other audiovisual content, books, or music.
 6. The medium as inclaim 5 wherein the status indicates whether the content can bepresented on the client device and wherein the search results includeresults from other information domains including at least one or moreof: social media postings; current news; weather; maps; sports; orstocks.
 7. The medium as in claim 1 wherein the subscription informationis contained in a metatag of a web page associated with creation of thesubscription information.
 8. The medium as in claim 1, wherein themethod further comprises: transmitting user data to the cloud storageservice to synchronize user data on the client device with the useraccount on the cloud storage service.
 9. The medium as in claim 8wherein the cloud storage service is operated by a first party and thecontent is provided by other parties that are different than the firstparty.
 10. A non-transitory machine readable medium storing executableprogram instructions which when executed by a data processing systemcause the data processing system to perform a method comprising:receiving a search query, from a first device, with subscriptioninformation extracted automatically from a first device and thesubscription information is included in the search query, wherein thesubscription information is entered in a second device and synchronizedwith the first device, wherein the subscription information is createdwithin a plurality of applications that each call, through anapplication program interface (API), a subscription reporter to uploadthe subscription information of each of the plurality of theapplications to a cloud storage service's user account of the seconddevice, the plurality of different applications have differentsubscription information, and each of the plurality of applications areexecuting on the second device; searching through content metadata usingthe search query and the subscription information to produce searchresults; and transmitting the search results which includes dataindicating a status of a subscription to content.
 11. The medium as inclaim 10, wherein the method further comprises: receiving thesubscription information from a client device which is associated withthe user account identifier, and wherein the subscription information isstored in a cloud storage service.
 12. The medium as in claim 11,wherein the search results are ranked based on the subscriptioninformation.
 13. The medium as in claim 11 wherein the method furthercomprises: receiving user data to synchronize user data on the clientdevice with a user account, specified by the user account identifier, onthe cloud storage service.
 14. The medium as in claim 13 wherein thecontent includes at least one of: movies, TV shows, other audiovisualcontent, books or music; and wherein the status indicates whether thecontent can be presented on the client device; and wherein the searchresults include results from other information domains including atleast one or more of: social media postings; current news; weather;maps; sports; or stocks.
 15. A data processing system comprising: afirst processing system; an input device coupled to the processingsystem; a display coupled to a processing system; a system wide searchmodule that is configured to index content and metadata of files storedon the data processing system; a subscription reporter module that isconfigured to transmit subscription information, about a subscription,to a cloud storage service used by a user account of the data processingsystem, wherein the subscription information is about a subscription tocontent; and a network communication module that is configured totransmit the subscription information and to transmit a search query,received through the input device, and the network communication moduleis configured to receive search results from searching of information,and wherein the search results indicate a status of the subscription tothe content, wherein the subscription information is automaticallyincluded in the search query without a user request to include thesubscription information and the subscription information furtherinclude additional subscription information entered at a secondprocessing system and synchronized with the first processing system,wherein the subscription information is created within a plurality ofapplications that each call, through an application program interface(API), a subscription reporter to upload the subscription information ofeach of the plurality of the applications to a cloud storage service'suser account of the second processing system, the plurality of differentapplications have different subscription information, and each of theplurality of applications are executing on the second processing system.16. The system of claim 15 wherein the search query is from either adedicated search input field in a user interface chrome of a web browseror in an input field of a user interface of the system wide searchmodule.